Контекстно вільні граматики. Зав’язок контекстно вільної граматики і автомата з магазинною пам’яттю

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
ТГВ
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Лiнгвiстичне забезпечення САПР
Група:
КН-413

Частина тексту файла

Міністерство освіти і науки України Національний університет «Львівська політехніка» кафедра САПР ЗВІТ до лабораторної роботи №5 на тему: «Контекстно вільні граматики. Зав’язок контекстно вільної граматики і автомата з магазинною пам’яттю» з курсу: «Лінгвістичне забезпечення САПР» Львів 2010 МЕТА РОБОТИ Вивчити особливості використання контекстно вільних граматик та їх зв'язок з автоматами з магазинною пам’яттю.   ЛАБОРАТОРНЕ ЗАВДАННЯ Побудувати дерево виводу, сформувати КВ-граматику і розробити МП-автомат для наступної мови: 21. (a+b)/c*a ХІД РОБОТИ 1. Побудова дерева виводу. * <І > 2. Формування КВ-граматики. G=(VT, VN, , P). VT={a, b, c, +, /, * , (, )}; VN={S, V, M, N, І, O}; =S  3. Побудова МП-автомата  Q={S1, S2}; Σ={a, b, c, +, /, *, ¬}; Г={ S, V, M, І, O, a, b, c, +, /, *, (, ), }; δ q0=S1; Z0=; F=ДОПУСТИТИ; Таблиці станів: S1 a b c + / * ( ) ¬   S       S1,ТР., S→ІOІOV    V       S2, ТР., V→)M(    M S1, ТР., M→ІOІ          О    S1, ТР., O→+ S2,ТР., O→/ S2,ТР., O→*     І S1, ТР., І→a           S2, ТР., І→a S2,ТР., І→b S2,ТР., І→c                    S2 a b c + / * ( ) ¬   a S1,Зсув Вишт.          b  S2,Зсув Вишт.         c   S1,Зсув Вишт.        +    S1,Зсув Вишт.       /     S1,Зсув Вишт.      *      S1,Зсув Вишт.     (       S1,Зсув Вишт.    )        S1,Зсув Вишт.            ДОП.   ТЕКСТ ПРОГРАМИ import java.util.*; import java.io.*; class Magazine { public byte size = 20; public byte startedQuantityOfMagazine = 2; private char[] mag = new char[size]; private byte i, p; public byte s; public int f;//F(0 - не допуск, 1 - допуск) public String str; public Magazine(String str) { this.str = str; s = 1; f = -1; mag[0] = '^'; p++; mag[1] = 'S'; p++; for (i = 3; i < size - 1; i++) { mag[i] = ' '; } } public void push(char c) { if (p == size - 1) { System.out.println("Magazine is full."); } else { mag[p] = c; p++; } } public void pop() { p--; mag[p] = ' '; } public void printAllMagazine() { for (int i=0; i<p; i++){ System.out.print(mag[i]); } } public char HeadOfMagazine() { return mag[p - 1]; } public byte tablesOFStanes() { byte x=0; switch(this.s) { case 1: if (HeadOfMagazine() == 'S' && str.charAt(0) == '(') { x = 1; pop(); push('I'); push('O'); push('I'); push('O'); push('V'); } else if (HeadOfMagazine() == 'V' && str.charAt(0) == '(') { x = 1; pop(); push(')'); push('M'); push('('); this.s = 2; } else if (HeadOfMagazine() == 'M' && str.charAt(0) == 'a') { x = 1; pop(); push('I'); push('O'); push('I'); } else if (HeadOfMagazine() == 'I' && str.charAt(0) == 'a') { x = 1; pop(); push('a'); this.s = 2; } else if (HeadOfMagazine() == 'O' && str.charAt(0) == '+') { x = 1; pop(); push('+'); this.s = 2; } else if (HeadOfMagazine() == 'I' && str.charAt(0) == 'b') { x = 1; pop(); push('b'); this.s = 2; } else if (HeadOfMagazine() == 'O' && str.charAt(0) == '/') { x = 1; pop(); push('/'); this.s = 2; } else if...
Антиботан аватар за замовчуванням

17.07.2020 15:07

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини